package com.xayy.mgt.service;

import cn.kawins.base.result.CheckResult;
import com.xayy.mgt.model.dto.GenerateTheoryDataDto;
import com.xayy.mgt.model.vo.ConfigFileVo;
import com.xayy.mgt.model.xinwangmodel.SateListData;

import java.util.List;

/**
 * 生成理论数据
 * @author plq
 */
public interface GenerateTheoryDataService{

    /**
     * 生成理论数据
     * @param dataDto 请求参数
     * @return CheckResult<Object>
     */
    CheckResult<Object> execute(GenerateTheoryDataDto dataDto);


    /**
     * 获取理论的卫星数据和链路数据
     * @param region * region = 1 卫星vs卫星
     *                 * region = 2 卫星vs地面站
     *                 * region = 3 地面站vs卫星
     * @return CheckResult<Object>
     */
    CheckResult<Object> getTheoryData(String region,Long nodeId);

    /**
     * 获取卫星列表数据
     * @return  SateListData
     */
    SateListData getSatelliteList();

    /**
     * 获取理论的卫星速率以及缓存
     * @return CheckResult
     */
    CheckResult<Object> siteRateAndCache(Long nodeId);

    /**
     * 检查节点是否满足
     * @return CheckResult
     */
    boolean checkNodeNumber(Long nodeId);

    /**
     * 查询配置文件
     * @return CheckResult
     */
    CheckResult<Object> getConfigFile();

    /**
     * 修改配置文件
     * @param configFileVo 配置文件内容
     * @return CheckResult
     */
    CheckResult<Object> updateConfigFile(List<ConfigFileVo> configFileVo);
}
